// function User(name, age) {
//     this.name = name;
//     this.age = age;
// }
// const Singleton = (function () {
//     let instance = null;
//     return function (name, age) {
//         if (!instance) {
//             instance = new User(name, age)
//         }
//         return instance;
//     }
// })()
// console.log(Singleton() === Singleton()) // true 单例模式 使用同一个实例 同一份地址 避免占用内存

class Singleton {
    constructor(name, age) {
        if (!Singleton.instance) {
            this.name = name;
            this.age = age;
            Singleton.instance = this;
        }
        return Singleton.instance;
    }
}

console.log(new Singleton('张三', 18) === new Singleton('李四', 20)) // true
console.log(Singleton) // [class Singleton] { instance: Singleton { name: '张三', age: 18 } }
